import { defineStore } from 'pinia'
import { ref } from 'vue';
import { Login as checkLogin} from '../service/login/login';
//  export const useUserStore= defineStore("userstore",{

//      state:()=>{
//         return{
//             token:"",
//             menus:[]
//         }
//      },
//      actions:{
//         updateToken(val:string){
//           this.token=val;
//         },
//         updateMenu(menus:any){
//             this.menus=menus;

//         }
//      }
//  })

//组合式api写法

export const useUserStore = defineStore("userstore", () => {

    const token = ref("");
    const menus = ref<any>();
    const updateToken = (val: string) => {
        token.value = val;
    }
    const updateMenu = (val: any) => {
        menus.value =val;
    }


     interface LoginData{
        username: string,
        pass: string,
        verifyCode: string,
        token: string
    }
    const login= (data:LoginData)=>{

        return new Promise(async(resolve,reject)=>{
            const res:any=await checkLogin(data);
            if(res.errCode===10000){
          
                token.value=  res.data.token;
                menus.value=   res.data.menu;
                resolve(res);
                
            }
            else{
                reject(res);
            }
            
        })
       
    }
    return {
        token, menus,updateToken,updateMenu,login
    }}, {
        //持久化
        persist:{
            storage: sessionStorage,
        }
    }

)